package jmine.tec.services.annotations;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * Coloque sobre o(s) método(s) que verifica as condições do serviço antes da execução. Não é necessário verificar por ausência de
 * propriedades obrigatórias. Exceções verificadas lançadas pelo método são consideradas erros de validação.
 */
@Documented
@Target({ ElementType.METHOD })
@Retention(RetentionPolicy.RUNTIME)
public @interface Validation {

    /**
     * Se <code>true</code>, uma excecao de runtime lançada no método de validação é tratado como erro de validação.
     */
    boolean validateRuntimeException() default false;

}
